package de.iritgo.skillfull.component.motion;

import java.awt.Point;
import java.awt.Rectangle;

import de.iritgo.skillfull.component.MotionComponent;

/**
 * This component move a entity to a position or a direction.
 * 
 * @author held
 *
 */
public interface MoveFieldComponent extends MotionComponent
{
	/**
	 * Move to a given point
	 * 
	 * @param destination The dest
	 */
	public void moveTo (Point destination);
	
	/**
	 * Move endless in a given direction. It stops if the component leave
	 * the given area. It is used for the shot.
	 * 
	 * @param direction The direction
	 * @param validArea The valid area
	 */
	public void moveTo (float direction, Rectangle validArea);

	/**
	 * The component has reached the given position.
	 * 
	 * @return if true the position is reached
	 */
	public boolean dstReached ();

	/**
	 * Stop all moving
	 */
	public void stop ();
}
